/* Soubor je ulozen v kodovani UTF-8.
 * Kontrola kódování: Příliš žluťoučký kůň úpěl ďábelské ódy. */

package cz.vse.adventura.po1715.xshet00_shevtsova.hra;

import  cz.pecinovsky.english.pojj.adv_framework.game_txt.ICommand;

import static cz.vse.adventura.po1715.xshet00_shevtsova.hra.Texty.*;

/*******************************************************************************
 * Instance třídy {@code PrikazHelp} představují příkaz Help, který výzyvá pomoc
 *
 * @author    Tatyana Shevtsova
 * @version   
 */
public class PrikazHelp extends APrikaz
{
//== KONSTANTNÍ ATRIBUTY TŘÍDY =================================================
//== PROMĚNNÉ ATRIBUTY TŘÍDY ===================================================
//== STATICKÝ INICIALIZAČNÍ BLOK - STATICKÝ KONSTRUKTOR ========================
//== KONSTANTNÍ ATRIBUTY INSTANCÍ ==============================================
//== PROMĚNNÉ ATRIBUTY INSTANCÍ ================================================
//== PŘÍSTUPOVÉ METODY VLASTNOSTÍ TŘÍDY ========================================
//== OSTATNÍ NESOUKROMÉ METODY TŘÍDY ===========================================

//##############################################################################
//== KONSTRUKTORY A TOVÁRNÍ METODY =============================================
 /***************************************************************************
     * Vytvori prikaz, jenz po zadani otazniku vypise napovedu
     * popisujici vsechny prikazy ve hre.
     */
    PrikazHelp()
    {
        super(Texty.pHELP,
              "Přehled příkazů, které je možno v průběhu hry zadat" );
    }


//== ABSTRAKTNÍ METODY =========================================================
//== PŘÍSTUPOVÉ METODY VLASTNOSTÍ INSTANCÍ =====================================
//== OSTATNÍ NESOUKROMÉ METODY INSTANCÍ ========================================

    /***************************************************************************
     * Vypise nazvy a popisy vsech prikazu.
     *
     * @param  param Nepouzite parametry prikazu
     * @return Nazvy a popisy vsech prikazu
     */
    @Override
    public String execute( String... param )
    {
        StringBuilder sb = new StringBuilder(
            Texty.zNÁPOVĚDA);
//            "Příkazy, které je možno v průběhu hry zadat:\n" );
        for( ICommand ap : APrikaz.getPříkazy() )
        {
            String nazev = ap.getName();
            if( nazev.equals( "" ) ) {
                continue;
            }
            sb.append("\n").append(ap.getName())
              .append("\n").append(ap.getDescription()).append("\n");
        }
        return sb.toString();

    }



    //== SOUKROMÉ A POMOCNÉ METODY TŘÍDY ===========================================
//== SOUKROMÉ A POMOCNÉ METODY INSTANCÍ ========================================
//== INTERNÍ DATOVÉ TYPY =======================================================
//== TESTY A METODA MAIN =======================================================
//
//     /***************************************************************************
//      * Testovací metoda.
//      */
//     public static void test()
//     {
//         PrikazHelp instance = new PrikazHelp();
//     }
//     /** @param args Parametry příkazového řádku - nepoužívané. */
//     public static void main(String[] args)  {  test();  }
}
